home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / a_man / cat1 / sesdaemon.z / sesdaemon
Encoding:
Text File  |  2001-04-17  |  17.3 KB  |  331 lines

  1.  
  2.  
  3.  
  4. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      sssseeeessssddddaaaaeeeemmmmoooonnnn - Fibre Channel Drive Enclosure Status/Configuration daemon
  10.  
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      sssseeeessssddddaaaaeeeemmmmoooonnnn _s_e_s_d_a_e_m_o_n-_o_p_t_i_o_n_s-_f_i_l_e
  14.  
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      sssseeeessssddddaaaaeeeemmmmoooonnnn is a daemon which allows communication with attached fibre
  18.      channel drive enclosures; status is collected and re-configuration is
  19.      allowed.
  20.  
  21.      The low-level transport protocol is the industry standard SES (SCSI-3
  22.      Enclosure Services). See sssseeeessssmmmmggggrrrr((((1111MMMM)))) for details.
  23.  
  24.      The sssseeeessssddddaaaaeeeemmmmoooonnnn is normally started automatically during boot if sssseeeessssddddaaaaeeeemmmmoooonnnn
  25.      is cccchhhhkkkkccccoooonnnnffffiiiigggg'ed oooonnnn. Four processes are started for each instance of
  26.      sssseeeessssddddaaaaeeeemmmmoooonnnn; the backend polling thread which handles polling the drive
  27.      enclosures for status, the frontend RPC thread which is responsible for
  28.      communication with user interfaces like sssseeeessssmmmmggggrrrr, an event handler thread
  29.      which handles FRU status change events, and a handler that executes the
  30.      client's commands. Each event results in a user configurable callout
  31.      shell script being executed. These scripts are user customizable.
  32.  
  33.  
  34. OOOOPPPPTTTTIIIIOOOONNNNSSSS
  35.      The _s_e_s_d_a_e_m_o_n-_o_p_t_i_o_n_s-_f_i_l_e is provided for customizing certain aspects of
  36.      sssseeeessssddddaaaaeeeemmmmoooonnnn operation. This file normally resides at
  37.      ////eeeettttcccc////ccccoooonnnnffffiiiigggg////sssseeeessssddddaaaaeeeemmmmoooonnnn....ooooppppttttiiiioooonnnnssss. The contents of the file is a list of
  38.      customizable variables and their values.
  39.  
  40.      PPPPoooollllllllPPPPeeeerrrriiiioooodddd     Specifies the time, in seconds, between successive polls
  41.                     of the SAN enclosures.  Status change detection is not
  42.                     interrupt driven so status changes will not be detected
  43.                     until the next poll period.
  44.  
  45.                     The challenge in selecting an optimal polling period is to
  46.                     find an interval that is short enough to find failures
  47.                     quickly and yet long enough to avoid adding a significant
  48.                     amount of traffic to the SAN.  Large or busy SAN's will
  49.                     require more time to execute a poll than smaller or less
  50.                     busy ones.  However some FRU failures can cause automatic
  51.                     enclosure shutdowns in as little as 2 minutes.
  52.  
  53.                     The default value is 66660000.
  54.  
  55.      EEEExxxxiiiittttNNNNooooCCCCttttllllrrrrssss    On startup, if no fibre channel controllers are found in
  56.                     the system and this is set to 1, all of the sesdaemon
  57.                     threads will terminate.  Changing it to 0 will let the
  58.                     threads run as usual whether controllers are present or
  59.                     not.  This may be useful in the event controllers will be
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  71.  
  72.  
  73.  
  74.                     added later via PCI hotswap inserts.  However, once added,
  75.                     an sssseeeessssmmmmggggrrrr ppppoooollllllll command must still be executed for
  76.                     sssseeeessssddddaaaaeeeemmmmoooonnnn to see the new controllers.  If the daemons have
  77.                     already exited and need to be restarted, run
  78.                     ////eeeettttcccc////iiiinnnniiiitttt....dddd////sssseeeessssddddaaaaeeeemmmmoooonnnn ssssttttaaaarrrrtttt.
  79.  
  80.                     The default value is 1111.
  81.  
  82.      PPPPrrrreeeeRRRReeeemmmmoooovvvvaaaallllCCCCaaaalllllllloooouuuutttt
  83.                     Specifies the pathname of the script to be executed just
  84.                     prior to performing a sssseeeessssmmmmggggrrrr rrrreeeemmmmoooovvvveeee command. The default
  85.                     value is ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////pppprrrreeeerrrreeeemmmmoooovvvveeee....CCCCOOOO.
  86.  
  87.      PPPPoooossssttttRRRReeeemmmmoooovvvvaaaallllCCCCaaaalllllllloooouuuutttt
  88.                     Specifies the pathname of the script to be executed
  89.                     immediately following the performance of a sssseeeessssmmmmggggrrrr rrrreeeemmmmoooovvvveeee
  90.                     command. The default value is
  91.                     ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////ppppoooossssttttrrrreeeemmmmoooovvvveeee....CCCCOOOO.
  92.  
  93.      PPPPoooossssttttIIIInnnnsssseeeerrrrttttiiiioooonnnnCCCCaaaalllllllloooouuuutttt
  94.                     Specifies the pathname of the script to be executed
  95.                     immediately following the performance of a ffffsssseeeessssmmmmggggrrrr iiiinnnnsssseeeerrrrtttt
  96.                     command. The default value is
  97.                     ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////ppppoooossssttttiiiinnnnsssseeeerrrrtttt....CCCCOOOO.
  98.  
  99.      SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt
  100.                     Specifies the pathname of the script to be executed
  101.                     following a FRU status change. The default value is
  102.                     ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////ssssttttaaaattttcccchhhhaaaannnnggggeeeedddd....CCCCOOOO.
  103.  
  104.      DDDDeeeebbbbuuuuggggLLLLeeeevvvveeeellll     Specifies the "verbosity" of sssseeeessssddddaaaaeeeemmmmoooonnnn. The default value
  105.                     is 0000.
  106.  
  107.  
  108. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN OOOOFFFF EEEEVVVVEEEENNNNTTTT CCCCAAAALLLLLLLLOOOOUUUUTTTT SSSSCCCCRRRRIIIIPPPPTTTTSSSS
  109.      The sssseeeessssddddaaaaeeeemmmmoooonnnn event handler executes one or more callout scripts in
  110.      response to a FRU status change or user initiated reconfiguration. Each
  111.      time a script is executed, 10 arguments are passed to it which a user can
  112.      use to customize said scripts. For example, the SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt
  113.      script can be modified to send mail to a system administrator's chatty
  114.      pager should a fault be detected. The arguments are as follows:
  115.  
  116.  
  117.      _1 - _h_o_s_t _n_a_m_e  A character string specifying the name of the host machine
  118.                     where the FRU status change was detected.
  119.  
  120.      _2 - _c_a_l_l_o_u_t _t_y_p_e
  121.                     A character string specifying the callout type. The
  122.                     possible values are _I_N_F_O, _R_E_C_O_N_F_I_G and _F_A_I_L_U_R_E. The types
  123.                     can be viewed in increasing priority of importance.  The
  124.                     _I_N_F_O type is used when the FRU status change is
  125.                     informational and little or no system administrator
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  137.  
  138.  
  139.  
  140.                     intervention is needed. An example of an informational
  141.                     state change is a disk FRU transitioning from _n_o_t _p_r_e_s_e_n_t
  142.                     to _O_K following the insertion of of a previously absent
  143.                     disk drive. The _R_E_C_O_N_F_I_G type is used following a
  144.                     configuration change which may be of interest to the
  145.                     system administrator. An example of a reconfiguration
  146.                     state change is a disk FRU transitioning from _O_K to
  147.                     _N_O_T__P_R_E_S_E_N_T following the execution of a sssseeeessssmmmmggggrrrr rrrreeeemmmmoooovvvveeee
  148.                     command. The _F_A_I_L_U_R_E type is used when system
  149.                     administrator intervention is needed due to an unexpected
  150.                     FRU failure.
  151.  
  152.      _3 - _t_i_m_e _s_t_a_m_p A character string specifying the time at which the status
  153.                     change occurred.
  154.  
  155.      _4 - _c_h_a_n_n_e_l _I_D A numerical character string specifying the channel number
  156.                     on which the state change was detected.
  157.  
  158.      _5 - _e_n_c_l_o_s_u_r_e _I_D
  159.                     A numerical character string specifying the fibre channel
  160.                     drive enclosure on which the state change was detected. Is
  161.                     only specified for the case of the SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt.
  162.                     It is set to -1 for other callouts.
  163.  
  164.      _6 - _F_R_U _t_y_p_e   A character string specifying the type/class of FRU for
  165.                     which the status change is being reported. Possible values
  166.                     are _D_I_S_K (for disk FRUs), _P_S (for power supply FRUs), _F_A_N
  167.                     (for fan FRUs), _T_E_M_P for temperature, _A_L_A_R_M for alarm, and
  168.                     _L_C_C (for Link-Control-Card FRUs).
  169.  
  170.      _7 - _F_R_U _I_D     A numerical character string specifying the ID of the FRU
  171.                     in an enclosure which underwent the state change.  This
  172.                     would be the slot number, bay number, or LCC number in the
  173.                     enclosure.
  174.  
  175.      _8 - _F_R_U _N_A_M_E   This is the identifier of the FRU, which in the case of
  176.                     drives is the world wide name in hex.
  177.  
  178.      _9 - _S_t_a_t_e _t_r_a_n_s_i_t_i_o_n _f_r_o_m _s_t_a_t_e
  179.                     A character string specifying the from state of the FRU
  180.                     state transition. Possible values are _O_K, _O_F_F, _F_A_I_L_E_D,
  181.                     _N_O_T-_P_R_E_S_E_N_T,  _O_F_F if the FRU is not ready, and _U_N_S_U_P for
  182.                     not supported FRU types. It is only specified for the case
  183.                     of the SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt. It is set to -1 for other
  184.                     callouts.
  185.  
  186.      _1_0 - _S_t_a_t_e _t_r_a_n_s_i_t_i_o_n _t_o _s_t_a_t_e
  187.                     A character string specifying the to state of the FRU
  188.                     state transition. Possible values are the same as the from
  189.                     state.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  203.  
  204.  
  205.  
  206. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  207.      The following is an example of a SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt C-shell script
  208.      which may be used to send mail to a system administrator following the
  209.      detection of a FRU failure.
  210.  
  211.      #! /bin/csh -f
  212.      #
  213.      # If the status change is a failure, send mail to system
  214.      # administrator.
  215.      #
  216.  
  217.      set TMP="/tmp/statchanged_$$"
  218.  
  219.      if ("$2" == FAILURE) then
  220.           echo "$6 #$7 in enclosure $5 on channel $4 on host $1 FAILED at $3" > $TMP
  221.           Mail -s "FRU Failure" root@alpha.centauri.com < $TMP
  222.           /bin/rm -f $TMP
  223.      endif
  224.  
  225.  
  226.  
  227. LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
  228.      If a communication path fails, the daemon will automatically try
  229.      alternate paths to the other SES capable devices.  However, driver
  230.      retries before returning an error can make this a lengthy process.
  231.  
  232.      Losing the last SES drive in an enclosure or losing the link to an
  233.      enclosure may be logged as an LCC failure.
  234.  
  235.      Enclosures which dont set their enclosure ID in their SES configuration
  236.      page will be assigned an enclosure ID from the worldwide name of the
  237.      first SES drive the daemon locates in the enclosure. Once the id is
  238.      assigned, it will not be changed by the daemon if the enclosure
  239.      configuration changes.  However on later runs, this will result in the
  240.      enclosure having a different ID.
  241.  
  242.      These utilities are not able to handle soft addressing.  Proper SAN
  243.      configuration is critical to their proper operation.
  244.  
  245.      Not all enclosures support all capabilities of these utilities.
  246.  
  247.      Simulating failures may not result in exactly the same failure
  248.      notifications as actual failures.
  249.  
  250.      Due to dependencies on drive types, this utility only supports IBM and
  251.      SEAGATE disk drives.
  252.  
  253.      If a target assigns different worldwide names to each of its ports, each
  254.      port will be treated as an individual target.
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  269.  
  270.  
  271.  
  272. DDDDIIIIFFFFFFFFEEEERRRREEEENNNNCCCCEEEESSSS FFFFRRRROOOOMMMM FFFFCCCCAAAAGGGGEEEENNNNTTTT
  273.      Although the sssseeeessssddddaaaaeeeemmmmoooonnnn/sssseeeessssmmmmggggrrrr utilities are designed to be similar in
  274.      look and functionality, there are some important differences.  Here are
  275.      some of these:
  276.  
  277.      The arguments on the callouts are slightly different and if ffffccccaaaaggggeeeennnntttt
  278.      callout code is re-used, these should be carefully checked and
  279.      understood.
  280.  
  281.      The iiiinnnnsssseeeerrrrtttt and rrrreeeemmmmoooovvvveeee commands now make SOP_SCAN ioctls to the affected
  282.      controllers and the callout scripts run at the proper times.  iiiinnnnsssseeeerrrrtttt will
  283.      also run iiiiooooccccoooonnnnffffiiiigggg to make device files for the new devices.
  284.  
  285.      bbbbyyyyppppaaaassssssss and uuuunnnnbbbbyyyyppppaaaassssssss do not run the insert and remove callouts.
  286.  
  287.      sssseeeessssddddaaaaeeeemmmmoooonnnn does not accept off host command requests and this
  288.      configuration option has been removed.
  289.  
  290.      sssseeeessssddddaaaaeeeemmmmoooonnnn works with drives on private loops and fabrics.
  291.  
  292.  
  293. FFFFIIIILLLLEEEESSSS
  294.      /usr/bin/sesdaemon
  295.      /etc/config/sesdaemon.options
  296.      /etc/init.d/sesdaemon
  297.      /usr/lib/sesdaemon/postinsert.CO
  298.      /usr/lib/sesdaemon/preremove.CO
  299.      /usr/lib/sesdaemon/postremove.CO
  300.      /usr/lib/sesdaemon/statchanged.CO
  301.  
  302.  
  303. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  304.      chkconfig(1M), ioconfig(1M), scsiha(7), sesmgr(1M)
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.